package com.icinfo.cloud.provider.punish.service;

import com.icinfo.cloud.provider.punish.approval.vo.LineTerritoryInfoVo;
import com.icinfo.cloud.provider.punish.config.model.SysDepartParam;
import com.icinfo.cloud.provider.punish.config.vo.LineCaseHandleInfoVo;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * @author shishengyao
 * @description
 * @date 2022/6/28
 */
public interface ISysDepartParamService extends BaseService {

    /**
     * 根据机构编码获取部门参数
     * @author liyafeng
     * @date 2022/3/31
     * @param orgCode
     * @param deptCode
     * @return {@link SysDepartParam}
     */
    SysDepartParam getSysDepartParamByOrgCode(String orgCode,String deptCode);
    /**
     * 描述：将条线配置组装成集合对象
     *
     * @param lineConfig 条线配置（json字符串）
     * @return {@link List < LineCaseHandleInfoVo >} 组装好的条线配置集合
     * @author xiangyuyu
     * @date 2022-05-20 14:21
     */
    List<LineCaseHandleInfoVo> assembleLineConfigToList(String lineConfig);

    /**
     * 描述：根据机构编码获取部门条线信息
     *
     * @param orgCode 组织代码
     * @return {@link List<LineCaseHandleInfoVo> }
     * @author shishengyao
     * @date 2022/06/28
     */
    List<LineTerritoryInfoVo> getLineInfoListByOrgCode(String orgCode);
    /**
     * 描述：根据机构code和条线code获取条线信息
     *
     * @param orgCode  组织代码
     * @param lineCode 条线code
     * @return {@link LineTerritoryInfoVo }
     * @author shishengyao
     * @date 2022/06/28
     */
    LineTerritoryInfoVo getLineInfoByOrgCodeAndLineCode(String orgCode,String lineCode);
    /**
     *根据部门编码与机构编码获取对应的参数配置
     * @author liyafeng
     * @date 2022/11/23
     * @param orgCode
     * @param deptCode
     * @return {@link SysDepartParam}
     */
    SysDepartParam getSysDepartParamByOrgCodeAndDeptCode(String orgCode,String deptCode);

    LineTerritoryInfoVo getLineInfoByOrgCodeAndLineCodeNumber(String caseOrgCode, String caseDeptCode, String lineCode);


    /**
     * 获取公安委托相关的系统配置
     * @param orgCode 公安委托的clientOrgCode
     * @param deptCode 公安委托的clientDeptCode
     * @return
     */
    SysDepartParam getPublicSecurityEntrustSysDepartParamByOrgCodeAndDeptCode(String orgCode,String deptCode);
}
